package com.xiyuan.pojo.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.xiyuan.pojo.base.BaseBean;
import com.xiyuan.pojo.result.PageBean;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.groups.Default;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.URL;

import java.util.Date;
import java.io.Serializable;

/**
 * (Users)实体类
 *
 * @author makejava
 * @since 2024-10-09 16:24:25
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User extends BaseBean implements Serializable {
    private static final long serialVersionUID = 356275574377352609L;
    /**
     * 用户id
     */
    private Integer id;
    /**
     * 用户账号
     */
    private String username;
    /**
     * 用户名称
     */
    @NotEmpty//值不能为null且内容不能为空
    @Pattern(regexp = "^\\S{1,10}$")
    private String name;
    /**
     * 用户密码
     */
    @JsonIgnore
    private String password;
    /**
     * 用户年龄
     */
    private Integer age;
    /**
     * 用户性别（0-女，1-男）
     */
    private Integer sex;
    /**
     * 用户电话
     */
    private String phone;
    /**
     * 用户邮箱
     */
    @Email
    private String email;
    /**
     * 用户头像url
     */
    @URL
    @NotEmpty(groups = UpdateAvatar.class)
    private String avatarUrl;
    /**
     * 用户状态（0-禁用，1-启用）
     */
    private Integer status;
    /**
     * 用户角色（0-超级管理员，1-管理员，2-普通用户）
     */
    private Integer role;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 更新时间
     */
    private Date updateTime;

    public interface UpdateUser extends Default {

    }
    public interface UpdateAvatar extends Default{

    }

}

